package com.yami.shop.bean.app.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 人脸设计订单DTO
 * @author AI Assistant
 */
@Data
@Schema(description = "人脸设计订单")
public class FaceDesignOrderDto {

    @Schema(description = "订单ID")
    private Long orderId;

    @Schema(description = "订单编号")
    private String orderNumber;

    @Schema(description = "用户ID")
    private String userId;

    @Schema(description = "设计稿ID")
    private Long designId;

    @Schema(description = "草稿ID")
    private String draftId;

    @Schema(description = "订单金额")
    private BigDecimal orderAmount;

    @Schema(description = "实际支付金额")
    private BigDecimal actualAmount;

    @Schema(description = "运费")
    private BigDecimal freightAmount;

    @Schema(description = "订单状态 0:待支付 1:待发货 2:待收货 3:已完成 4:已取消 5:退款中 6:已退款")
    private Integer status;

    @Schema(description = "支付状态 0:未支付 1:已支付")
    private Integer payStatus;

    @Schema(description = "支付方式 1:微信 2:支付宝")
    private Integer payType;

    @Schema(description = "支付时间")
    private Date payTime;

    @Schema(description = "发货时间")
    private Date deliveryTime;

    @Schema(description = "确认收货时间")
    private Date receiveTime;

    @Schema(description = "取消时间")
    private Date cancelTime;

    @Schema(description = "退款时间")
    private Date refundTime;

    @Schema(description = "收货人姓名")
    private String receiverName;

    @Schema(description = "收货人电话")
    private String receiverPhone;

    @Schema(description = "收货人地址")
    private String receiverAddress;

    @Schema(description = "快递公司")
    private String expressCompany;

    @Schema(description = "快递单号")
    private String expressNumber;

    @Schema(description = "快递状态")
    private String expressStatus;

    @Schema(description = "快递详情")
    private String expressDetail;

    @Schema(description = "买家留言")
    private String buyerMessage;

    @Schema(description = "卖家备注")
    private String sellerRemark;

    @Schema(description = "是否删除 0:未删除 1:已删除")
    private Integer isDelete;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "更新时间")
    private Date updateTime;

    @Schema(description = "关联的设计稿信息")
    private FaceDesignDto faceDesign;

    @Schema(description = "关联的草稿信息")
    private FaceDraftDto faceDraft;
}